#include<bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt" , "w" , stdout);
#endif
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
int ans[n][n];
for(int i = 0 ; i < n ; ++i)
{
for(int j = 0 ; j < n ; ++j)
{
ans[i][j] = 0;
}
}
if(n == 2 && k == 2)
{
cout<<"Yes"<<endl;
cout<<"1 0"<<endl<<"1 0"<<endl;
continue;
}
if(k%2 != 0)
{
cout<<"No"<<endl;
}
else
{
if((k == 2) || ((n*n - k) == 2))
{
if(n == 2)
{
cout<<"Yes"<<endl;
ans[0][0] = 1;
ans[0][1] = 1;
ans[1][0]= 1;
ans[1][1] = 1;
for(int i = 0 ; i < n ; ++i)
{
for(int j = 0 ; j < n ; ++j)
{
cout<<ans[i][j]<<" ";
}
cout<<endl;
}
}
else
{
cout<<"No"<<endl;
}
}
else
{
if(k%4 == 0)
{
int cnt = k/4;
for(int i = 0 ; i < n ; i = i + 2)
{
if(!cnt) break;
for(int j = 0 ; j < n ; j = j + 2)
{
if(cnt == 0) break;
ans[i][j] = 1;
ans[i+1][j] = 1;
ans[i][j+1] = 1;
ans[i+1][j+1] = 1;
cnt--;
}
if(cnt == 0) break;
}
}
else{
ans[0][0] = 1;
ans[0][1] = 1;
ans[1][0] = 1;
ans[2][1] = 1;
ans[1][2] = 1;
ans[2][2] = 1;
int cnt = k - 6;
if(k == (n*n - 6))
{
ans[0][2] = 1;
ans[0][3] = 1;
ans[3][2] = 1;
ans[3][3] = 1;
cnt = cnt - 4;
}
cnt = cnt/4;
for(int i = 0 ; i < n ; i = i + 2)
{
if(!cnt) break;
for(int j = 0 ; j < n ; j = j + 2)
{
if(i <4 && j < 4) continue;
ans[i][j] = 1;
ans[i+1][j] = 1;
ans[i][j+1] = 1;
ans[i+1][j+1] = 1;
cnt--;
if(!cnt) break;
}
if(!cnt) break;
}
}
cout<<"Yes"<<endl;
for(int i = 0 ; i < n ; ++i)
{
for(int j = 0 ; j < n ; ++j)
{
cout<<ans[i][j]<<" ";
}
cout<<endl;
}
}
}
}
}
479C - Exams | 1030A - In Search of an Easy Problem |
158A - Next Round | 71A - Way Too Long Words |
160A - Twins | 1A - Theatre Square |
1614B - Divan and a New Project | 791A - Bear and Big Brother |
1452A - Robot Program | 344A - Magnets |
96A - Football | 702B - Powers of Two |
1036A - Function Height | 443A - Anton and Letters |
1478B - Nezzar and Lucky Number | 228A - Is your horseshoe on the other hoof |
122A - Lucky Division | 1611C - Polycarp Recovers the Permutation |
432A - Choosing Teams | 758A - Holiday Of Equality |
1650C - Weight of the System of Nested Segments | 1097A - Gennady and a Card Game |
248A - Cupboards | 1641A - Great Sequence |
1537A - Arithmetic Array | 1370A - Maximum GCD |
149A - Business trip | 34A - Reconnaissance 2 |
59A - Word | 462B - Appleman and Card Game |